import * as fs from 'fs';  
import * as path from 'path'; 
import Koa from 'koa'
class Utils {
    static importFileObj(path: string) {

    }



    /**
     * 文件遍历方法
     * @param filePath 需要遍历的文件路径
     */
    public static async fileDisplay(filePath: string,app: Koa) {
        // 根据文件路径读取文件，返回一个文件列表
        const files:string[] = await fs.readdirSync(filePath);
        // 遍历读取到的文件列表
        for(let i = 0;i<files.length;i++){
            const fileName = files[i]
            // path.join得到当前文件的绝对路径
            const _filePath:string = path.join(filePath, fileName);
            const stats:fs.Stats = await fs.statSync(_filePath)
            const isFile = stats.isFile(); // 是否为文件
            const isDir = stats.isDirectory(); // 是否为文件夹
            if (isFile) {
                const file = require(_filePath)
                app.use(file.default.routes())
                console.log(`加载接口：${_filePath.replace(process.cwd(),'')}成功`)
            }
            if (isDir) {
                await Utils.fileDisplay(_filePath,app); // 递归，如果是文件夹，就继续遍历该文件夹里面的文件；
            }
        }
        
        
    }
}

export default Utils

